package com.hyst.service;

import java.util.List;
import java.util.Map;

import com.github.pagehelper.Page;
import com.hyst.domain.*;

/**
 * @Description:学生表Service
 * @author：cb 
 * @Date：2018年10月09日
 */

public interface LeaveRequestService {

	/**
	 * @Description: 根据条件列表查询
	 * @param LeaveRequest
	 * @return Page<FreeAudition>
	 */
	Page<LeaveRequest> list(LeaveRequest leaveRequest) throws Exception;

	LeaveRequest getLeaveInfoById(String uniqueId) throws Exception;
	/**
	 * 根据时间查询
	 * @param leaveRequest
	 * @return
	 */
//	Page<LeaveRequest> listByDate(LeaveRequest leaveRequest);
	
	/**
	 * 根据状态查询
	 * @param leaveRequest
	 * @return
	 */
//	Page<LeaveRequest> listByStatus(LeaveRequest leaveRequest);
	
	/**
	 * 根据负责人查询
	 * @param leaveRequest
	 * @return
	 */
//	Page<LeaveRequest> listByAdmin(LeaveRequest leaveRequest);
	
	/**
	 * 为请假信息分配负责人
	 * @param leaveRequest
	 * @return
	 */
	int updateAdminForLeave(LeaveRequest leaveRequest) throws Throwable;
	
	/**
	 * 审核请假状态
	 * @param leaveRequest
	 * @return
	 */
	int updateLeaveRequestStatus(LeaveRequest leaveRequest) throws Throwable;
	
	/**
	 * 查看请假日期的课程安排
	 * @param teacherId
	 * @param leaveDays
	 * @return
	 */
	Page<CurriculumScheduleView> getCurriculumsByDays(String teacherId,List<String> leaveDays) throws Throwable;

    Page<LeaveRequest> list2(LeaveRequest leaveRequest);

    void updateStatus(Map sqlMap);

	Page<StudentLeaveRequest> studentLeave(final LeaveRequest leaveRequest);
}
